package org.xb.Compliance.NonCompliance;

// 中介者类
class Mediator {
    // 中介者直接与子系统进行交互
    public void handleRequest() {
        System.out.println("中介者处理请求");
        SubSystemA subsystemA = new SubSystemA();
        SubSystemB subsystemB = new SubSystemB();
        /*
         * 说明这里为什么不遵守迪米特法则呢？
            过多的中介者责任：
                * 如果系统规模逐渐增大，中介者可能需要负责过多的协调工作，导致中介者类变得庞大复杂。这可能违反了单一职责原则，使得中介者难以维护和理解。

            中介者过于依赖于子系统：
                * 中介者需要了解每个子系统的接口和行为，以便适当地进行协调。这种情况下，当子系统发生变化时，可能需要更新中介者，增加了中介者与子系统之间的依赖关系。

            引入不必要的耦合：
                * 尽管降低了客户端与子系统的直接依赖，但中介者与每个子系统之间的关系仍然存在。如果系统演化的时候子系统之间的关系发生变化，可能需要修改中介者，
                * 引入不必要的耦合。

            性能问题：
                * 中介者模式的引入可能导致性能问题，因为所有的通信都需要经过中介者。在某些情况下，直接的通信可能更为高效。

            复杂性增加：
                * 引入中介者模式可能会使整体系统变得更加复杂，因为需要引入新的类和关系，增加了代码的复杂性和理解难度。
         */
        subsystemA.doSomething();
        subsystemB.doSomething();
    }
}
